var http = require('http'),
    path = require('path'),
    url = require('url'),
    fs = require('fs');
var root = __dirname;
console.log(__dirname);
var server = http.createServer(function(req, res) {
    var dir = path.join(root, url.parse(req.url).pathname);
    // var stream = fs.createReadStream(dir);
    // stream.on('data', function(chunk) {
    // 	res.write(chunk);
    // })
    // stream.on('end', function(){
    // 	res.end();
    // });
    // 更高效的方式
    // stream.pipe(res);
    // // 错误处理
    // stream.on('error',function(err){
    // 	res.statusCode = 500;
    // 	res.end('Invalid serve error');
    // 	console.log(err);
    // });
    // stat获取文件的信息，文件不存在会放入一个ENOENT
    fs.stat(dir, function(err, stat) {
        console.log(stat);
        if (err) {
            if ('ENOENT' === err.code) {
                res.statusCode = 404;
                res.end('Not found');
            } else {
                res.statusCode = 500;
                res.end('Invalid server error')
            }
        } else {
            res.setHeader('Content-Length', stat.size);
            var stream = fs.createReadStream(dir);
            stream.on('data', function(chunk) {
                console.log(chunk)
            });
            stream.pipe(res);
            stream.on('error', function(err) {
                res.statusCode = 500;
                res.end('Invalid serve error');
                console.log(err);
            });
        }
    });
});
server.listen(4090, function(err) {
    if (!err) {
        console.log('server start on port 4090');
    }
});